define(['app'], function (app) {

    var deps = ["$filter"];

    /**
     * 1分钟内更新的动态显示为: “刚刚”
     * 1小时内更新的动态显示为: “n分钟前”
     * 1小时（含）前显示: 具体更新的时间, HH:mm
     * 1天以上（含）显示: X月X日+时间,
     * 跨年显示: X年X月X日 +时间
     * @returns {Function}
     */
    function filter ($filter) {
        var dateFilter = $filter("date");
        return function (input, dateType) {
            if (!input) {
                return "";
            }
            var date;
            if (dateType == 'long') {
                date = new Date(input * 1000);
            } else {
                date = new Date(input);
            }

            var now = new Date();
            var diff = (now.getTime() - date.getTime()) / 60000;

            // if (diff < 1) {
            //     // 1分钟内
            //     return "刚刚";
            // }
            // if (diff < 60) {
            //     // 1小时内
            //     return parseInt(diff) + "分钟前";
            // }

            if (diff < 24 * 60) {
                // 1小时（含）前
                return dateFilter(date, "HH:mm");
            }

            if (now.getFullYear() === date.getFullYear()) {
                // 1天以上（含）, 同年
                return dateFilter(date, "yyyy年MM月dd日 HH:mm");
            }

            // 1天以上（含）, 跨年
            return dateFilter(date, "yyyy年MM月dd日 HH:mm")
        };
    }

    filter.$inject = deps;
    app.lazy.filter('moment', filter);
});